perm filename GRAPH.LAP[L70,TES] blob sn#009942 filedate 1972-05-14 generic text, type T, neo UTF8
(SET_CONTEXT (QUOTE &READY) (QUOTE VALUE) NIL (QUOTE ***)) 

(LAP EDIT SUBR) 
	(MOVEI 1 (QUOTE "*****")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE NIL)) 
	(POPJ P) 
	NIL 

(LAP GFUN1CHOICE SUBR) 
	(POPJ P) 
	NIL 

(LAP GFUN2CHOICE SUBR) 
	(MOVEI 2 (QUOTE 1)) 
	(JCALL 2 (E *PLUS)) 
	NIL 

(LAP GFUN3CHOICE SUBR) 
	(MOVE 2 (SPECIAL &NN)) 
	(JCALL 2 (E *GREAT)) 
	NIL 

(LAP CHOICE SUBR) 
	(JSP 6 SPECBIND) 
	(0 1 (SPECIAL &NN)) 
	(MOVEI 5 (QUOTE FAILURE)) 
	(MOVEI 4 (QUOTE GFUN3CHOICE)) 
	(MOVEI 3 (QUOTE GFUN2CHOICE)) 
	(MOVEI 2 (QUOTE GFUN1CHOICE)) 
	(MOVEI 1 (QUOTE 1)) 
	(CALL 5 (E &SLCT)) 
	(JRST 0 SPECSTR) 
	NIL 

(LAP TRANSLATE SUBR) 
	(MOVEI 4 (QUOTE 5)) 
	(MOVEI 3 (QUOTE NIL)) 
	(MOVEI 2 (QUOTE VALUE)) 
	(MOVEI 1 (QUOTE &LASTPROB)) 
	(CALL 4 (E SET_CONTEXT)) 
	(MOVEI 4 (QUOTE NIL)) 
	(MOVE 3 4) 
	(MOVEI 2 (QUOTE VALUE)) 
	(MOVEI 1 (QUOTE BLOCKS)) 
	(CALL 4 (E SET_CONTEXT)) 
	(CALL 0 (E GETPPN)) 
	(MOVE 4 1) 
	(MOVEI 3 (QUOTE NIL)) 
	(MOVEI 2 (QUOTE VALUE)) 
	(MOVEI 1 (QUOTE &PPPN)) 
	(CALL 4 (E SET_CONTEXT)) 
	(MOVEI 1 (QUOTE "TRANSLATING FROM FILE: TOWER")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE (TOWER))) 
	(CALL 17 (E PARSE)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 1 (E TERPRI)) 
	(MOVEI 1 (QUOTE "YOU ARE ABOUT TO TYPE TO MLISP2, E.G.:   PROBLEM(1);")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 17 (E PARSE)) 
	(MOVEI 1 (QUOTE NIL)) 
	(POPJ P) 
	NIL 

(LAP PROBLEM SUBR) 
	(PUSH P 1) 
	(MOVEI 2 (QUOTE EXPR)) 
	(MOVEI 1 (QUOTE TOWER)) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG12) 
	(MOVEI 2 (QUOTE FEXPR)) 
	(MOVEI 1 (QUOTE TOWER)) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG12) 
	(MOVEI 2 (QUOTE SUBR)) 
	(MOVEI 1 (QUOTE TOWER)) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG12) 
	(MOVEI 2 (QUOTE FSUBR)) 
	(MOVEI 1 (QUOTE TOWER)) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG12) 
	(MOVEI 1 (QUOTE "YOU FORGOT TO TYPE (TRANSLATE)")) 
	(CALL 1 (E PRINTSTR)) 
	(JRST 0 TAG7) 
TAG12 	(MOVEI 2 (QUOTE 1)) 
	(MOVE 1 0 P) 
	(CALL 2 (E *LESS)) 
	(JUMPN 1 TAG16) 
	(MOVE 2 (SPECIAL &LASTPROB)) 
	(MOVE 1 0 P) 
	(CALL 2 (E *GREAT)) 
	(JUMPE 1 TAG15) 
TAG16 	(MOVEI 2 (QUOTE " PROBLEMS!")) 
	(MOVE 1 (SPECIAL &LASTPROB)) 
	(CALL 2 (E CAT)) 
	(MOVE 2 1) 
	(MOVEI 1 (QUOTE "ONLY ")) 
	(CALL 2 (E CAT)) 
	(CALL 1 (E PRINTSTR)) 
	(MOVE 1 (SPECIAL &READY)) 
	(JRST 0 TAG6) 
TAG15 	(MOVE 1 0 P) 
	(CALL 1 (E SUB1)) 
	(MOVE 2 1) 
	(MOVEI 1 (QUOTE (G0297 G0298 G0299 G0300 G0301))) 
	(CALL 2 (E SUFLIST)) 
	(HLRZ@ 1 1) 
	(JRST 0 TAG21) 
TAG1 	(MOVEI 2 (QUOTE ((1 2 4) (2) (3) (5) (7) (13) (2 5) (2 3)))) 
	(JRST 0 TAG17) 
TAG2 	(MOVEI 2 (QUOTE ((2 5 10) (3) (7) (10) (15) (16) (17) (5 12) (2 12)))) 
	(JRST 0 TAG17) 
TAG3 	(MOVEI 2 (QUOTE ((2 2 3 10 5) (4) (13) (7) (4 13) (13 7) (7 13)))) 
	(JRST 0 TAG17) 
TAG4 	(MOVEI 2 (QUOTE ((2 3 1 12 4 3 2) (15) (26) (11 6) (16 11)))) 
	(JRST 0 TAG17) 
TAG5 	(MOVEI 2 (QUOTE ((17 16 2 5 10 13 16) (2) (23) (21) (1) (103) (66 12) (36 12) (12 36)))) 
TAG17 	(JRST 0 TAG22) 
TAG21 	(CAIN 1 (QUOTE G0301)) 
	(JRST 0 TAG5) 
	(CAIN 1 (QUOTE G0300)) 
	(JRST 0 TAG4) 
	(CAIN 1 (QUOTE G0299)) 
	(JRST 0 TAG3) 
	(CAIN 1 (QUOTE G0298)) 
	(JRST 0 TAG2) 
	(CAIN 1 (QUOTE G0297)) 
	(JRST 0 TAG1) 
	(PUSHJ P *UDT) 
TAG22 	(MOVE 1 0 P) 
	(CALL 2 (E CONS)) 
	(MOVE 4 1) 
	(MOVEI 3 (QUOTE NIL)) 
	(MOVEI 2 (QUOTE VALUE)) 
	(MOVEI 1 (QUOTE &PROB)) 
	(CALL 4 (E SET_CONTEXT)) 
	(MOVEI 4 (QUOTE T)) 
	(MOVEI 3 (QUOTE NIL)) 
	(MOVEI 2 (QUOTE &ISPROB)) 
	(MOVE 1 2) 
	(CALL 4 (E SET_CONTEXT)) 
	(MOVEI 1 (QUOTE "THESE ARE THE BLOCKS YOU HAVE:")) 
	(CALL 1 (E PRINC)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 1 (E TERPRI)) 
	(HRRZ@ 1 (SPECIAL &PROB)) 
	(HLRZ@ 1 1) 
	(CALL 1 (E PRINT)) 
	(MOVE 4 1) 
	(MOVEI 3 (QUOTE NIL)) 
	(MOVEI 2 (QUOTE VALUE)) 
	(MOVEI 1 (QUOTE BLOCKS)) 
	(CALL 4 (E SET_CONTEXT)) 
	(MOVE 1 (SPECIAL &READY)) 
	(JRST 0 TAG6) 
TAG7 	(MOVEI 1 (QUOTE NIL)) 
TAG6 	(SUB P (C 0 0 1 1)) 
	(POPJ P) 
	NIL 

(LAP GFUN1TEST SUBR) 
	(CALL 0 (E TYI)) 
	(JCALL 1 (E TYO)) 
	NIL 

(LAP TEST FSUBR) 
	(PUSH P 1) 
	(PUSH P (C 0 0 (QUOTE NIL) 0)) 
	(PUSH P (C 0 0 (QUOTE NIL) 0)) 
	(PUSH P (C 0 0 (QUOTE NIL) 0)) 
	(PUSH P (C 0 0 (QUOTE NIL) 0)) 
	(PUSH P (C 0 0 (QUOTE NIL) 0)) 
	(MOVEI 2 (QUOTE &ISPROB)) 
	(MOVE 1 2) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG16) 
	(MOVEI 1 (QUOTE "YOU FORGOT TO SAY PROBLEM(1);")) 
	(CALL 1 (E PRINTSTR)) 
	(JRST 0 TAG13) 
TAG16 	(MOVE 1 -5 P) 
	(CALL 1 (E LENGTH)) 
	(MOVEI 2 (QUOTE 2)) 
	(CALL 2 (E *GREAT)) 
	(JUMPE 1 TAG20) 
	(MOVEI 1 (QUOTE "TEST HAS 0, 1, OR 2 ARGUMENTS!")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE NIL)) 
	(JRST 0 TAG17) 
TAG20 	(MOVE 1 -5 P) 
	(CALL 1 (E LENGTH)) 
	(MOVEI 2 (QUOTE 1)) 
	(CALL 2 (E *PLUS)) 
	(CALL 1 (E SUB1)) 
	(MOVE 2 1) 
	(MOVEI 1 (QUOTE (G0302 G0303 G0304 G0305))) 
	(CALL 2 (E SUFLIST)) 
	(HLRZ@ 1 1) 
	(JRST 0 TAG25) 
TAG1 	(HRRZ@ 1 (SPECIAL &PROB)) 
	(HRRZ@ 1 1) 
	(JRST 0 TAG23) 
TAG2 	(HLRZ@ 1 -5 P) 
	(CALL 1 (E NUMBERP)) 
	(JUMPN 1 TAG27) 
	(MOVEI 1 (QUOTE "NON-NUMERIC ARGUMENT TO TEST")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE NIL)) 
	(JRST 0 TAG26) 
TAG27 	(MOVE 1 -5 P) 
	(CALL 1 (E NCONS)) 
TAG30 
TAG26 	(JRST 0 TAG23) 
TAG3 	(HLRZ@ 1 -5 P) 
	(CALL 1 (E NUMBERP)) 
	(JUMPE 1 TAG34) 
	(HRRZ@ 1 -5 P) 
	(HLRZ@ 1 1) 
	(CALL 1 (E NUMBERP)) 
	(JUMPN 1 TAG33) 
TAG34 	(MOVEI 1 (QUOTE "NON-NUMERIC ARGUMENT TO TEST")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE NIL)) 
	(JRST 0 TAG32) 
TAG33 	(MOVE 1 -5 P) 
	(CALL 1 (E NCONS)) 
TAG35 
TAG32 	(JRST 0 TAG23) 
TAG4 	(MOVEI 1 (QUOTE "TEST CAN ONLY HAVE 0, 1, OR 2 ARGUMENTS")) 
	(CALL 1 (E PRINTSTR)) 
TAG23 	(JRST 0 TAG37) 
TAG25 	(CAIN 1 (QUOTE G0305)) 
	(JRST 0 TAG4) 
	(CAIN 1 (QUOTE G0304)) 
	(JRST 0 TAG3) 
	(CAIN 1 (QUOTE G0303)) 
	(JRST 0 TAG2) 
	(CAIN 1 (QUOTE G0302)) 
	(JRST 0 TAG1) 
	(PUSHJ P *UDT) 
TAG37 
TAG21 
TAG17 	(MOVEM 1 0 P) 
	(MOVE 2 (SPECIAL &LASTPROB)) 
	(HLRZ@ 1 (SPECIAL &PROB)) 
	(CALL 2 (E EQUAL)) 
	(JUMPE 1 TAG41) 
	(MOVE 1 -5 P) 
	(JUMPE 1 TAG40) 
TAG41 	(TDZA 1 1) 
TAG40 	(MOVEI 1 (QUOTE T)) 
	(MOVEM 1 -2 P) 
	(JUMPE 1 TAG43) 
	(MOVEI 2 (QUOTE FEXPR)) 
	(MOVEI 1 (QUOTE TOWER)) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG46) 
	(MOVEI 1 (QUOTE FAILURE)) 
	(CALL 2 (E GET)) 
	(JUMPN 1 TAG46) 
	(MOVEI 1 (QUOTE CHOICE)) 
	(CALL 2 (E GET)) 
	(JUMPE 1 TAG45) 
TAG46 	(MOVEI 1 (QUOTE "Please UNTRACE")) 
	(CALL 1 (E PRINTSTR)) 
	(JRST 0 TAG13) 
TAG45 	(MOVEI 1 (QUOTE "ANSWERS WILL NOT APPEAR ON THE TERMINAL.")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVE 1 (SPECIAL &PPPN)) 
	(CALL 1 (E NCONS)) 
	(MOVEI 2 (QUOTE (4 HJE))) 
	(CALL 2 (E XCONS)) 
	(MOVEI 2 (QUOTE &CH)) 
	(CALL 2 (E XCONS)) 
	(MOVEI 2 (QUOTE OUTPUT)) 
	(CALL 2 (E XCONS)) 
	(CALL 1 (E NCONS)) 
	(MOVEI 2 (QUOTE OUTC)) 
	(CALL 2 (E XCONS)) 
	(CALL 1 (E *EVAL)) 
	(MOVEI 1 (QUOTE (DSK: TOWER))) 
	(CALL 17 (E INPUT)) 
	(CALL 1 (E INC)) 
TAG5 	(MOVEI 1 (QUOTE ((GFUN1TEST) T))) 
	(CALL 17 (E ERRSET)) 
	(CAIN 1 (QUOTE $EOF$)) 
	(JRST 0 TAG60) 
	(JRST 0 TAG57) 
TAG60 	(JRST 0 TAG55) 
TAG57 	(JRST 0 TAG5) 
TAG55 	(MOVEI 1 (QUOTE NIL)) 
	(HRRZ@ 1 (SPECIAL &PROB)) 
	(HLRZ@ 1 1) 
	(CALL 1 (E PRINT)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 1 (E TERPRI)) 
	(MOVEI 1 (QUOTE NIL)) 
TAG47 
TAG43 	(PUSH P 0 P) 
	(PUSH P (C 0 0 (QUOTE NIL) 0)) 
TAG6 	(MOVE 1 -1 P) 
	(JUMPE 1 TAG11) 
TAG66 	(HLRZ@ 1 -1 P) 
	(MOVEM 1 -3 P) 
	(CALL 1 (E LENGTH)) 
	(CALL 1 (E SUB1)) 
	(MOVE 2 1) 
	(MOVEI 1 (QUOTE (TOWER TWOTOWERS))) 
	(CALL 2 (E SUFLIST)) 
	(MOVE 2 -3 P) 
	(HLRZ@ 1 1) 
	(CALL 2 (E CONS)) 
	(MOVEM 1 -5 P) 
	(HRRZ@ 1 (SPECIAL &PROB)) 
	(HLRZ@ 1 1) 
	(MOVEM 1 (SPECIAL BLOCKS)) 
	(MOVE 1 -5 P) 
	(CALL 1 (E PRIN1)) 
	(MOVE 1 -4 P) 
	(JUMPE 1 TAG74) 
	(CALL 0 (E GC)) 
TAG74 	(MOVEI 1 (QUOTE 2)) 
	(CALL 1 (E CHOICE)) 
	(CALL 1 (E SUB1)) 
	(MOVE 2 1) 
	(MOVEI 1 (QUOTE (G0306 G0307))) 
	(CALL 2 (E SUFLIST)) 
	(HLRZ@ 1 1) 
	(JRST 0 TAG77) 
TAG7 	(MOVE 1 -5 P) 
	(CALL 1 (E *EVAL)) 
	(JRST 0 TAG75) 
TAG10 	(MOVEI 1 (QUOTE FAILURE)) 
TAG75 	(JRST 0 TAG100) 
TAG77 	(CAIN 1 (QUOTE G0307)) 
	(JRST 0 TAG10) 
	(CAIN 1 (QUOTE G0306)) 
	(JRST 0 TAG7) 
	(PUSHJ P *UDT) 
TAG100 	(MOVEM 1 -6 P) 
	(MOVE 1 -4 P) 
	(JUMPE 1 TAG102) 
	(MOVEI 2 (QUOTE NIL)) 
	(MOVEI 1 (QUOTE &CH)) 
	(CALL 2 (E OUTC)) 
TAG102 	(MOVEI 1 (QUOTE "  =  ")) 
	(CALL 1 (E PRINC)) 
	(MOVE 1 -6 P) 
	(CALL 1 (E PRIN1)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 1 (E TERPRI)) 
	(CALL 0 (E FLUSH)) 
	(MOVEI 1 (QUOTE NIL)) 
	(MOVEM 1 0 P) 
	(HRRZ@ 1 -1 P) 
	(MOVEM 1 -1 P) 
	(JRST 0 TAG6) 
TAG11 	(CLEARM 1 -3 P) 
	(MOVE 1 0 P) 
	(SUB P (C 0 0 2 2)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 1 (E TERPRI)) 
	(MOVE 1 -2 P) 
	(JUMPE 1 TAG104) 
	(MOVEI 2 (QUOTE T)) 
	(MOVEI 1 (QUOTE NIL)) 
	(CALL 2 (E OUTC)) 
	(MOVEI 1 (QUOTE "ANSWERS RECORDED FOR GRADER")) 
	(CALL 1 (E PRINTSTR)) 
	(MOVEI 1 (QUOTE NIL)) 
TAG104 	(MOVE 1 (SPECIAL &READY)) 
	(JRST 0 TAG12) 
TAG13 	(MOVEI 1 (QUOTE NIL)) 
TAG12 	(SUB P (C 0 0 6 6)) 
	(POPJ P) 
	NIL 

(CSYM G0308)